/**
 * 供应商-订单管理 <br/>
 *
 * @author fsl-gongl-20151029
 *
 */
$(function () {

    var defaultPagingObj = {
        total : 0,
        pageSize : 4,
        page : 0
    };

    PAGE_DATA.pagingObj = $.extend(defaultPagingObj, PAGE_DATA.pagingObj);

    // 主要分类：咖啡豆及咖啡相关,等.
    commTemplUtil.initPage();

    // 渲染左侧菜单;
    commTemplUtil.initCommLeftMemu();
    commTemplUtil.setLeftMenu(4);

    $("#commTabs_1").commNavTabs();

    // 页面首次 渲染.
    renderPage();

});

/**
 * 页面初始化时, 渲染 订单列表.<br/>
 *
 * @author fsl-gongl-20151102
 *
 */
function renderPage() {

    var listData = PAGE_DATA.orderListData.data || [];
    renderTabs(listData);

    // 时间-jquery-UI.
    $(".sel-order-time-1").datepicker().on("click focus", function(){
        $(this).blur();
    });
    $(".sel-order-time-2").datepicker().on("click focus", function(){
        $(this).blur();
    });

    // 搜索
    $(".sel-search-btn").each(function () {
        $(this).on("click", function () {
            getOrderListData(1, $(this).parents(".body-item"));
        });
    });

};

/**
 * 渲染所有tab.
 *
 */
function renderTabs(listData) {

    var orderTempl = _.template($("#order-templ").html());

    var onClickObj = {};

    // 初始化各tab内容.
    for (var i = 0, len = listData.length; i < len; i++) {

        onClickObj = {
            onClick : function () {
                var clickPage = $(this).attr("data-page");

                var tabObj = $(this).parents(".body-item");

                getOrderListData(parseInt(clickPage), tabObj);
            }
        };

        renderOrderList("#order-list-body-" + i,
            listData[i].detail || [],
            orderTempl);

        var tmpConf = $.extend(listData[i].pagingConfData || {}, onClickObj);
        commTemplUtil.initPaging("#comm-paging-" + i, tmpConf);
    }
};

/**
 * 渲染订单<br/>
 *
 * @param containerId {string} 包含订单的容器标签<br/>
 * @param data {array} 订单列表数据.
 * @param templ {object} 订单模板
 *
 * @author fsl-gong-20151029
 *
 */
function renderOrderList(containerId, data, templ) {

    var tmpHtml = templ(data);
    var containObj = $(containerId).find(".container");
    containObj.empty().html(tmpHtml);

    // 绑定事件-弹出框
    var modifyTempl = _.template($("#modify-total-templ").html());

    var modifyDefData = {
        buyerName : "",
        orderNo : "",
        goodsTotalPrice : "",
        distributePrice : "",
        orderPrice : ""
    };
    
    // 取消订单
    containObj.find(".sel-cacel-btn").on("click", function () {
        var orderIdVal = $(this).parent().attr("order-id") || "";

        $.ajax({
            url : PAGE_CONFIG.requestUrl.deleteOrderInfoS4,
            type : "delete",
            data : {
                orderNo : orderIdVal,
                _token: COMM_DATA.csrfToken
            },
            success : function (result) {
                var listData = $.extend([], result.data);
                renderTabs(listData);
            },
            error : function (result) {
                
                commTemplUtil.showErrorDialog({
                    title : '注意！',
                    message : '取消订单 失败！',
                    ok_txt : "确定"
                });
            }
        });
    });
    
    // 付款 
    containObj.find(".sel-pay-btn").on("click", function () {
        
        var orderIdVal = $(this).parent().attr("order-id") || "";

        var payTempl = _.template($("#pay-templ").html());
        
        var payConf = dialog({
                title : '确认收货',
                width : 480,
                content : payTempl({orderId: orderIdVal}),
                onshow : function () {
                    var that = this;
                    
                    var dialogId = this.id;
                    var dialogObj = $("[id='content:" + dialogId + "']");
                    
                    dialogObj.find(".sel-cancel-btn").on("click", function () {
                        that.remove();
                    });

                    dialogObj.find(".sel-confirm-btn").on("click", function () {
                        
                        $.ajax({
                            url : PAGE_CONFIG.requestUrl.updPayOrderB4,
                            type : "put",
                            data : {
                                orderNo : orderIdVal,
                                _token: COMM_DATA.csrfToken
                            },
                            success : function (result) {
                                var listData = $.extend([], result.data);
                                renderTabs(listData);
                            },
                            error : function (result) {
                                
                                that.remove();
                                
                                commTemplUtil.showErrorDialog({
                                    title : '注意！',
                                    message : '付款失败.',
                                    ok_txt : "确定"
                                });
                            },
                        });
                        
                    });

                }

            });
        payConf.showModal();

    });
};


/**
 * 获取订单数据.<br/>
 *
 * @param page {int} 页码<br/>
 * @param tab {object} 当前 tab 对象.
 * //@param templ {object} 订单模板
 *
 * @author fsl-gong-20151029
 *
 */
function getOrderListData(page, tab) {

    var orderTempl = _.template($("#order-templ").html());
    var status = tab.find(".sel-status").val() || "";
    var orderVal = tab.find(".sel-order-serial").val() || "";
    var time1 = tab.find(".sel-order-time-1").val() || "";
    var time2 = tab.find(".sel-order-time-2").val() || "";
    var name = tab.find(".sel-buyer-name").val() || "";

    if (!(time1 == "" || time2 == "")) {
        // 只有输入两个时间 才需要判断 时间合法性.
        var chkFlag = commTemplUtil.checkDate(time1, time2);

        if (!chkFlag) {
            // 不合法--date1 > date2
            commTemplUtil.showErrorDialog({
                title : "注意",
                message : "请检查时间先后顺序!",
                ok_txt : "确定"
            });
            return false;
        }
    }

    $.ajax({
        url : PAGE_CONFIG.requestUrl.getOrderListS4,
        type : "get",
        data : {
            page : page,
            pageSize : PAGE_DATA.pagingObj.pageSize || 10,
            tab : status,
            orderId : orderVal,
            startTime : time1,
            endTime : time2,
            buyerName : name
        },
        success : function (result) {
            var listData = $.extend([], result.data);

            onClickObj = {
                onClick : function () {
                    var clickPage = $(this).attr("data-page");

                    var tabObj = $(this).parents(".body-item");

                    getOrderListData(parseInt(clickPage), tabObj);
                }
            };

            renderOrderList("#" + tab.attr("id"),
                listData || [],
                orderTempl);

            var tmpConf = $.extend(result.pagingConfData || {}, onClickObj);
            commTemplUtil.initPaging("#" + tab.find(".comm-paging").attr("id"), tmpConf);

        },
        error : function () {
            commTemplUtil.showErrorDialog({
                title : '注意！',
                message : '获取订单数据失败！',
                ok_txt : "确定"
            });

            renderOrderList("#" + tab.attr("id"), [], orderTempl);
            commTemplUtil.initPaging("#" + tab.find(".comm-paging").attr("id"), {});
        }
    });
};
